home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-2.iso / Files II / Prog / N-P / NeoAccessIntro 3.0.sit / TCL / NeoDemo / Source / CNeoScrapStream.cp < prev   
MacBinary  |  1994-08-07  |  5.4 KB  |  [TEXT/BROW]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert MS-DOS Code Page Info (other/dosCodePage) ext Unsupported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sun Aug 7 13:29:32 1994, modified Sun Aug 7 13:29:32 1994, creator 'BROW', type ASCII, 4358 bytes "CNeoScrapStream.cp" , at 0x1186 892 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[BROW]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 12 43 4e 65 6f 53 63 | 72 61 70 53 74 72 65 61 |..CNeoSc|rapStrea|
|00000010| 6d 2e 63 70 00 00 00 00 | 00 00 00 00 00 00 00 00 |m.cp....|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 42 52 4f | 57 01 00 00 00 00 00 00 |.TEXTBRO|W.......|
|00000050| 00 00 00 00 00 11 06 00 | 00 03 7c aa 6a ca 7c aa |........|..|.j.|.|
|00000060| 6a ca 7c 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |j.|.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 b3 b1 00 00 |........|........|
|00000080| 2f 2a 2a 2a 2a 0d 20 2a | 20 43 4e 65 6f 53 63 72 |/****. *| CNeoScr|
|00000090| 61 70 53 74 72 65 61 6d | 2e 63 70 0d 20 2a 0d 20 |apStream|.cp. *. |
|000000a0| 2a 09 43 2b 2b 20 69 6d | 70 6c 65 6d 65 6e 74 61 |*.C++ im|plementa|
|000000b0| 74 69 6f 6e 20 66 6f 72 | 20 4e 65 6f 41 63 63 65 |tion for| NeoAcce|
|000000c0| 73 73 20 61 62 73 74 72 | 61 63 74 20 73 74 72 65 |ss abstr|act stre|
|000000d0| 61 6d 20 63 6c 61 73 73 | 2e 0d 20 2a 0d 20 2a 09 |am class|.. *. *.|
|000000e0| 43 6f 70 79 72 69 67 68 | 74 20 a9 20 4e 65 6f 6c |Copyrigh|t . Neol|
|000000f0| 6f 67 69 63 20 53 79 73 | 74 65 6d 73 20 31 39 39 |ogic Sys|tems 199|
|00000100| 32 2d 31 39 39 34 2e 20 | 41 6c 6c 20 72 69 67 68 |2-1994. |All righ|
|00000110| 74 73 20 72 65 73 65 72 | 76 65 64 0d 20 2a 0d 20 |ts reser|ved. *. |
|00000120| 2a 2a 2a 2a 2f 0d 0d 23 | 69 6e 63 6c 75 64 65 20 |****/..#|include |
|00000130| 22 4e 65 6f 54 79 70 65 | 73 2e 68 22 0d 23 69 6e |"NeoType|s.h".#in|
|00000140| 63 6c 75 64 65 20 22 43 | 4e 65 6f 53 63 72 61 70 |clude "C|NeoScrap|
|00000150| 53 74 72 65 61 6d 2e 68 | 22 0d 23 69 6e 63 6c 75 |Stream.h|".#inclu|
|00000160| 64 65 20 43 4e 65 6f 50 | 65 72 73 69 73 74 48 0d |de CNeoP|ersistH.|
|00000170| 0d 2f 2a 20 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |./* ****|********|
|00000180| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001b0| 2a 2a 2a 2a 2a 2a 20 2a | 2f 0d 09 09 09 09 09 09 |****** *|/.......|
|000001c0| 2f 2a 2a 20 49 6e 73 74 | 61 6e 63 65 20 4d 65 74 |/** Inst|ance Met|
|000001d0| 68 6f 64 73 20 2a 2a 2f | 0d 2f 2a 20 2a 2a 2a 2a |hods **/|./* ****|
|000001e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000200| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000210| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 20 2a |********|****** *|
|00000220| 2f 0d 43 4e 65 6f 53 63 | 72 61 70 53 74 72 65 61 |/.CNeoSc|rapStrea|
|00000230| 6d 3a 3a 43 4e 65 6f 53 | 63 72 61 70 53 74 72 65 |m::CNeoS|crapStre|
|00000240| 61 6d 28 63 6f 6e 73 74 | 20 4f 53 54 79 70 65 20 |am(const| OSType |
|00000250| 61 54 79 70 65 29 0d 7b | 0d 09 73 65 74 54 79 70 |aType).{|..setTyp|
|00000260| 65 28 61 54 79 70 65 29 | 3b 0d 09 66 4f 66 66 73 |e(aType)|;..fOffs|
|00000270| 65 74 20 3d 20 30 3b 0d | 09 66 44 61 74 61 20 3d |et = 0;.|.fData =|
|00000280| 20 4e 65 77 48 61 6e 64 | 6c 65 28 30 29 3b 0d 09 | NewHand|le(0);..|
|00000290| 4e 65 6f 46 61 69 6c 4e | 69 6c 28 66 44 61 74 61 |NeoFailN|il(fData|
|000002a0| 29 3b 0d 7d 0d 0d 43 4e | 65 6f 53 63 72 61 70 53 |);.}..CN|eoScrapS|
|000002b0| 74 72 65 61 6d 3a 3a 7e | 43 4e 65 6f 53 63 72 61 |tream::~|CNeoScra|
|000002c0| 70 53 74 72 65 61 6d 28 | 76 6f 69 64 29 0d 7b 0d |pStream(|void).{.|
|000002d0| 09 66 6c 75 73 68 28 29 | 3b 0d 09 69 66 20 28 66 |.flush()|;..if (f|
|000002e0| 44 61 74 61 29 20 7b 0d | 09 09 44 69 73 70 6f 73 |Data) {.|..Dispos|
|000002f0| 48 61 6e 64 6c 65 28 66 | 44 61 74 61 29 3b 0d 09 |Handle(f|Data);..|
|00000300| 09 66 44 61 74 61 20 3d | 20 6e 69 6c 3b 0d 09 7d |.fData =| nil;..}|
|00000310| 0d 7d 0d 0d 2f 2a 0d 20 | 2a 20 46 6c 75 73 68 20 |.}../*. |* Flush |
|00000320| 61 6e 79 20 62 75 66 66 | 65 72 65 64 20 64 61 74 |any buff|ered dat|
|00000330| 61 2e 0d 20 2a 2f 0d 23 | 70 72 61 67 6d 61 20 73 |a.. */.#|pragma s|
|00000340| 65 67 6d 65 6e 74 20 4e | 65 6f 57 72 69 74 65 0d |egment N|eoWrite.|
|00000350| 76 6f 69 64 20 43 4e 65 | 6f 53 63 72 61 70 53 74 |void CNe|oScrapSt|
|00000360| 72 65 61 6d 3a 3a 66 6c | 75 73 68 28 76 6f 69 64 |ream::fl|ush(void|
|00000370| 29 0d 7b 0d 09 69 66 20 | 28 66 4f 66 66 73 65 74 |).{..if |(fOffset|
|00000380| 29 20 7b 0d 09 09 4e 65 | 6f 41 73 73 65 72 74 28 |) {...Ne|oAssert(|
|00000390| 66 44 61 74 61 29 3b 0d | 09 09 48 4c 6f 63 6b 28 |fData);.|..HLock(|
|000003a0| 66 44 61 74 61 29 3b 0d | 09 09 50 75 74 53 63 72 |fData);.|..PutScr|
|000003b0| 61 70 28 66 4c 65 6e 67 | 74 68 2c 20 66 54 79 70 |ap(fLeng|th, fTyp|
|000003c0| 65 2c 20 2a 66 44 61 74 | 61 29 3b 0d 09 09 48 55 |e, *fDat|a);...HU|
|000003d0| 6e 6c 6f 63 6b 28 66 44 | 61 74 61 29 3b 0d 09 09 |nlock(fD|ata);...|
|000003e0| 66 44 61 74 61 20 3d 20 | 6e 69 6c 3b 0d 09 09 66 |fData = |nil;...f|
|000003f0| 4c 65 6e 67 74 68 20 3d | 20 30 3b 0d 09 09 66 4f |Length =| 0;...fO|
|00000400| 66 66 73 65 74 20 3d 20 | 30 3b 0d 09 7d 0d 09 65 |ffset = |0;..}..e|
|00000410| 6c 73 65 20 69 66 20 28 | 66 44 61 74 61 29 20 7b |lse if (|fData) {|
|00000420| 0d 09 09 44 69 73 70 6f | 73 48 61 6e 64 6c 65 28 |...Dispo|sHandle(|
|00000430| 66 44 61 74 61 29 3b 0d | 09 09 66 44 61 74 61 20 |fData);.|..fData |
|00000440| 3d 20 6e 69 6c 3b 0d 09 | 09 66 4c 65 6e 67 74 68 |= nil;..|.fLength|
|00000450| 20 3d 20 30 3b 0d 09 7d | 0d 7d 0d 0d 2f 2a 20 2a | = 0;..}|.}../* *|
|00000460| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000470| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000480| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000490| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004a0| 2a 20 2a 2f 0d 09 09 09 | 09 09 09 2f 2a 2a 20 49 |* */....|.../** I|
|000004b0| 2f 4f 20 4d 65 74 68 6f | 64 73 20 2a 2a 2f 0d 2f |/O Metho|ds **/./|
|000004c0| 2a 20 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |* ******|********|
|000004d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000500| 2a 2a 2a 2a 20 2a 2f 0d | 2f 2a 0d 20 2a 20 50 6f |**** */.|/*. * Po|
|00000510| 73 69 74 69 6f 6e 20 74 | 68 65 20 73 74 72 65 61 |sition t|he strea|
|00000520| 6d 20 74 6f 20 74 68 65 | 20 67 69 76 65 6e 20 6d |m to the| given m|
|00000530| 61 72 6b 20 74 68 65 6e | 20 61 6c 6c 6f 63 61 74 |ark then| allocat|
|00000540| 65 20 61 20 6d 65 6d 6f | 72 79 20 62 6c 6f 63 6b |e a memo|ry block|
|00000550| 20 6f 66 20 74 68 65 0d | 20 2a 20 67 69 76 65 6e | of the.| * given|
|00000560| 20 6c 65 6e 67 74 68 20 | 74 68 65 6e 20 72 65 61 | length |then rea|
|00000570| 64 20 74 68 61 74 20 6e | 75 6d 62 65 72 20 6f 66 |d that n|umber of|
|00000580| 20 62 79 74 65 73 20 69 | 6e 74 6f 20 74 68 65 20 | bytes i|nto the |
|00000590| 62 6c 6f 63 6b 2e 0d 20 | 2a 2f 0d 23 70 72 61 67 |block.. |*/.#prag|
|000005a0| 6d 61 20 73 65 67 6d 65 | 6e 74 20 4e 65 6f 53 74 |ma segme|nt NeoSt|
|000005b0| 72 65 61 6d 0d 4e 65 6f | 42 6c 6f 62 20 43 4e 65 |ream.Neo|Blob CNe|
|000005c0| 6f 53 63 72 61 70 53 74 | 72 65 61 6d 3a 3a 72 65 |oScrapSt|ream::re|
|000005d0| 61 64 42 6c 6f 62 28 63 | 6f 6e 73 74 20 4e 65 6f |adBlob(c|onst Neo|
|000005e0| 4d 61 72 6b 20 61 4d 61 | 72 6b 2c 20 6c 6f 6e 67 |Mark aMa|rk, long|
|000005f0| 20 26 61 4c 65 6e 67 74 | 68 2c 20 63 6f 6e 73 74 | &aLengt|h, const|
|00000600| 20 4e 65 6f 54 61 67 20 | 61 54 61 67 29 0d 7b 0d | NeoTag |aTag).{.|
|00000610| 09 6c 6f 6e 67 09 09 6f | 66 66 73 65 74 3b 0d 09 |.long..o|ffset;..|
|00000620| 4e 65 6f 42 6c 6f 62 09 | 09 62 6c 6f 62 3b 0d 0d |NeoBlob.|.blob;..|
|00000630| 09 46 61 69 6c 4e 49 4c | 28 62 6c 6f 62 20 3d 20 |.FailNIL|(blob = |
|00000640| 28 4e 65 6f 42 6c 6f 62 | 29 4e 65 77 48 61 6e 64 |(NeoBlob|)NewHand|
|00000650| 6c 65 28 30 29 29 3b 0d | 0d 09 61 4c 65 6e 67 74 |le(0));.|..aLengt|
|00000660| 68 20 3d 20 47 65 74 53 | 63 72 61 70 28 28 48 61 |h = GetS|crap((Ha|
|00000670| 6e 64 6c 65 29 62 6c 6f | 62 2c 20 61 54 61 67 2c |ndle)blo|b, aTag,|
|00000680| 20 26 6f 66 66 73 65 74 | 29 3b 0d 09 69 66 20 28 | &offset|);..if (|
|00000690| 61 4c 65 6e 67 74 68 20 | 3c 20 30 29 20 7b 20 20 |aLength |< 0) { |
|000006a0| 09 09 09 09 09 09 2f 2a | 20 6e 65 67 61 74 69 76 |....../*| negativ|
|000006b0| 65 3a 20 65 72 72 6f 72 | 20 6f 72 20 6e 6f 20 64 |e: error| or no d|
|000006c0| 61 74 61 20 69 6e 20 73 | 63 72 61 70 20 2a 2f 0d |ata in s|crap */.|
|000006d0| 09 09 44 69 73 70 6f 73 | 48 61 6e 64 6c 65 28 28 |..Dispos|Handle((|
|000006e0| 48 61 6e 64 6c 65 29 62 | 6c 6f 62 29 3b 0d 09 09 |Handle)b|lob);...|
|000006f0| 62 6c 6f 62 20 3d 20 6e | 69 6c 3b 0d 09 7d 0d 09 |blob = n|il;..}..|
|00000700| 65 6c 73 65 0d 09 09 43 | 4e 65 6f 50 65 72 73 69 |else...C|NeoPersi|
|00000710| 73 74 3a 3a 46 43 61 63 | 68 65 55 73 65 64 20 2b |st::FCac|heUsed +|
|00000720| 3d 20 61 4c 65 6e 67 74 | 68 3b 0d 0d 09 72 65 74 |= aLengt|h;...ret|
|00000730| 75 72 6e 20 62 6c 6f 62 | 3b 0d 7d 0d 0d 2f 2a 0d |urn blob|;.}../*.|
|00000740| 20 2a 20 52 65 61 64 20 | 61 20 63 68 75 6e 6b 20 | * Read |a chunk |
|00000750| 6f 66 20 64 61 74 61 20 | 6f 66 20 6c 65 6e 67 74 |of data |of lengt|
|00000760| 68 20 61 4c 65 6e 67 74 | 68 20 69 6e 74 6f 20 74 |h aLengt|h into t|
|00000770| 68 65 20 62 75 66 66 65 | 72 20 72 65 66 65 72 72 |he buffe|r referr|
|00000780| 65 64 20 74 6f 20 62 79 | 0d 20 2a 20 61 42 75 66 |ed to by|. * aBuf|
|00000790| 66 65 72 2e 20 54 68 69 | 73 20 6d 65 74 68 6f 64 |fer. Thi|s method|
|000007a0| 20 61 73 73 75 6d 65 73 | 20 74 68 61 74 20 74 68 | assumes| that th|
|000007b0| 65 20 66 69 6c 65 20 69 | 73 20 61 6c 72 65 61 64 |e file i|s alread|
|000007c0| 79 20 70 6f 73 69 74 69 | 6f 6e 65 64 20 74 6f 0d |y positi|oned to.|
|000007d0| 20 2a 20 74 68 65 20 70 | 72 6f 70 65 72 20 6c 6f | * the p|roper lo|
|000007e0| 63 61 74 69 6f 6e 20 69 | 6e 20 74 68 65 20 66 69 |cation i|n the fi|
|000007f0| 6c 65 2e 0d 20 2a 2f 0d | 23 70 72 61 67 6d 61 20 |le.. */.|#pragma |
|00000800| 73 65 67 6d 65 6e 74 20 | 4e 65 6f 52 65 61 64 0d |segment |NeoRead.|
|00000810| 76 6f 69 64 20 43 4e 65 | 6f 53 63 72 61 70 53 74 |void CNe|oScrapSt|
|00000820| 72 65 61 6d 3a 3a 72 65 | 61 64 43 68 75 6e 6b 28 |ream::re|adChunk(|
|00000830| 76 6f 69 64 20 2a 61 42 | 75 66 66 65 72 2c 20 63 |void *aB|uffer, c|
|00000840| 6f 6e 73 74 20 6c 6f 6e | 67 20 61 4c 65 6e 67 74 |onst lon|g aLengt|
|00000850| 68 2c 20 63 6f 6e 73 74 | 20 4e 65 6f 54 61 67 20 |h, const| NeoTag |
|00000860| 2f 2a 20 61 54 61 67 20 | 2a 2f 29 0d 7b 0d 09 69 |/* aTag |*/).{..i|
|00000870| 66 20 28 66 4f 66 66 73 | 65 74 20 3c 20 66 4c 65 |f (fOffs|et < fLe|
|00000880| 6e 67 74 68 29 20 7b 0d | 09 09 4e 65 6f 41 73 73 |ngth) {.|..NeoAss|
|00000890| 65 72 74 28 66 4f 66 66 | 73 65 74 20 2b 20 61 4c |ert(fOff|set + aL|
|000008a0| 65 6e 67 74 68 20 3c 3d | 20 66 4c 65 6e 67 74 68 |ength <=| fLength|
|000008b0| 29 3b 09 09 09 2f 2f 20 | 54 68 69 73 20 73 68 6f |);...// |This sho|
|000008c0| 75 6c 64 6e 27 74 20 72 | 65 61 6c 6c 79 20 68 61 |uldn't r|eally ha|
|000008d0| 70 70 65 6e 2c 20 73 68 | 6f 75 6c 64 20 69 74 3f |ppen, sh|ould it?|
|000008e0| 0d 0d 09 09 4e 65 6f 42 | 6c 6f 63 6b 4d 6f 76 65 |....NeoB|lockMove|
|000008f0| 28 28 76 6f 69 64 20 2a | 29 28 28 2a 28 63 68 61 |((void *|)((*(cha|
|00000900| 72 20 2a 2a 29 66 44 61 | 74 61 29 20 2b 20 66 4f |r **)fDa|ta) + fO|
|00000910| 66 66 73 65 74 29 2c 20 | 61 42 75 66 66 65 72 2c |ffset), |aBuffer,|
|00000920| 20 61 4c 65 6e 67 74 68 | 29 3b 0d 09 09 66 4f 66 | aLength|);...fOf|
|00000930| 66 73 65 74 20 2b 3d 20 | 61 4c 65 6e 67 74 68 3b |fset += |aLength;|
|00000940| 0d 09 7d 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 54 68 65 |..}.}../|*. * The|
|00000950| 20 70 72 6f 63 65 73 73 | 20 6f 66 20 72 65 61 64 | process| of read|
|00000960| 69 6e 67 20 61 6e 20 6f | 62 6a 65 63 74 20 66 72 |ing an o|bject fr|
|00000970| 6f 6d 20 61 20 73 74 72 | 65 61 6d 20 73 6f 6d 65 |om a str|eam some|
|00000980| 74 69 6d 65 73 20 6e 65 | 65 64 73 20 74 6f 20 62 |times ne|eds to b|
|00000990| 65 67 69 6e 0d 20 2a 20 | 62 79 20 66 69 72 73 74 |egin. * |by first|
|000009a0| 20 63 6f 6e 66 69 67 75 | 72 69 6e 67 20 6f 72 20 | configu|ring or |
|000009b0| 6f 74 68 65 72 77 69 73 | 65 20 70 72 65 70 61 72 |otherwis|e prepar|
|000009c0| 69 6e 67 20 74 68 65 20 | 73 74 72 65 61 6d 2e 20 |ing the |stream. |
|000009d0| 54 68 65 20 72 65 61 64 | 4f 62 6a 65 63 74 0d 20 |The read|Object. |
|000009e0| 2a 20 6d 65 74 68 6f 64 | 20 69 73 20 6f 76 65 72 |* method| is over|
|000009f0| 72 69 64 64 65 6e 20 62 | 79 20 74 68 6f 73 65 20 |ridden b|y those |
|00000a00| 73 74 72 65 61 6d 73 20 | 74 6f 20 70 65 72 66 6f |streams |to perfo|
|00000a10| 72 6d 20 74 68 65 73 65 | 20 70 72 65 61 6d 62 6c |rm these| preambl|
|00000a20| 65 20 74 61 73 6b 73 2e | 0d 20 2a 2f 0d 23 70 72 |e tasks.|. */.#pr|
|00000a30| 61 67 6d 61 20 73 65 67 | 6d 65 6e 74 20 4e 65 6f |agma seg|ment Neo|
|00000a40| 53 74 72 65 61 6d 0d 76 | 6f 69 64 20 43 4e 65 6f |Stream.v|oid CNeo|
|00000a50| 53 63 72 61 70 53 74 72 | 65 61 6d 3a 3a 72 65 61 |ScrapStr|eam::rea|
|00000a60| 64 4f 62 6a 65 63 74 28 | 43 4e 65 6f 50 65 72 73 |dObject(|CNeoPers|
|00000a70| 69 73 74 20 2a 61 4f 62 | 6a 65 63 74 2c 20 63 6f |ist *aOb|ject, co|
|00000a80| 6e 73 74 20 4e 65 6f 54 | 61 67 20 61 54 61 67 29 |nst NeoT|ag aTag)|
|00000a90| 0d 7b 0d 09 42 6f 6f 6c | 65 61 6e 09 09 64 69 73 |.{..Bool|ean..dis|
|00000aa0| 70 6f 73 65 09 3d 20 28 | 42 6f 6f 6c 65 61 6e 29 |pose.= (|Boolean)|
|00000ab0| 28 66 44 61 74 61 20 3d | 3d 20 6e 69 6c 29 3b 0d |(fData =|= nil);.|
|00000ac0| 09 6c 6f 6e 67 09 09 6c | 65 6e 67 74 68 3b 0d 09 |.long..l|ength;..|
|00000ad0| 6c 6f 6e 67 09 09 6f 66 | 66 73 65 74 3b 0d 0d 09 |long..of|fset;...|
|00000ae0| 69 66 20 28 21 66 44 61 | 74 61 29 20 7b 0d 09 09 |if (!fDa|ta) {...|
|00000af0| 4e 65 6f 46 61 69 6c 4e | 69 6c 28 66 44 61 74 61 |NeoFailN|il(fData|
|00000b00| 20 3d 20 4e 65 77 48 61 | 6e 64 6c 65 28 30 29 29 | = NewHa|ndle(0))|
|00000b10| 3b 0d 09 09 66 4f 66 66 | 73 65 74 20 3d 20 30 3b |;...fOff|set = 0;|
|00000b20| 0d 09 09 66 4c 65 6e 67 | 74 68 20 3d 20 30 3b 0d |...fLeng|th = 0;.|
|00000b30| 09 7d 0d 0d 09 6c 65 6e | 67 74 68 20 3d 20 47 65 |.}...len|gth = Ge|
|00000b40| 74 53 63 72 61 70 28 66 | 44 61 74 61 2c 20 66 54 |tScrap(f|Data, fT|
|00000b50| 79 70 65 2c 20 26 6f 66 | 66 73 65 74 29 3b 0d 09 |ype, &of|fset);..|
|00000b60| 69 66 20 28 6c 65 6e 67 | 74 68 20 3c 20 30 29 20 |if (leng|th < 0) |
|00000b70| 7b 09 09 09 2f 2a 20 6e | 65 67 61 74 69 76 65 3a |{.../* n|egative:|
|00000b80| 20 65 72 72 6f 72 20 6f | 72 20 6e 6f 20 64 61 74 | error o|r no dat|
|00000b90| 61 20 69 6e 20 73 63 72 | 61 70 20 2a 2f 0d 09 09 |a in scr|ap */...|
|00000ba0| 69 66 20 28 64 69 73 70 | 6f 73 65 29 20 7b 0d 09 |if (disp|ose) {..|
|00000bb0| 09 09 44 69 73 70 6f 73 | 48 61 6e 64 6c 65 28 66 |..Dispos|Handle(f|
|00000bc0| 44 61 74 61 29 3b 0d 09 | 09 09 66 44 61 74 61 20 |Data);..|..fData |
|00000bd0| 3d 20 6e 69 6c 3b 0d 09 | 09 09 66 4f 66 66 73 65 |= nil;..|..fOffse|
|00000be0| 74 20 3d 20 30 3b 0d 09 | 09 09 66 4c 65 6e 67 74 |t = 0;..|..fLengt|
|00000bf0| 68 20 3d 20 30 3b 0d 09 | 09 7d 0d 09 7d 0d 09 65 |h = 0;..|.}..}..e|
|00000c00| 6c 73 65 0d 09 09 66 4c | 65 6e 67 74 68 20 3d 20 |lse...fL|ength = |
|00000c10| 6c 65 6e 67 74 68 3b 0d | 7d 0d 0d 2f 2a 0d 20 2a |length;.|}../*. *|
|00000c20| 20 50 6f 73 69 74 69 6f | 6e 20 74 68 65 20 73 74 | Positio|n the st|
|00000c30| 72 65 61 6d 20 74 6f 20 | 74 68 65 20 67 69 76 65 |ream to |the give|
|00000c40| 6e 20 6d 61 72 6b 20 74 | 68 65 6e 20 77 72 69 74 |n mark t|hen writ|
|00000c50| 65 20 74 68 61 74 20 6e | 75 6d 62 65 72 20 6f 66 |e that n|umber of|
|00000c60| 0d 20 2a 20 62 79 74 65 | 73 20 74 6f 20 74 68 65 |. * byte|s to the|
|00000c70| 20 73 74 72 65 61 6d 2e | 0d 20 2a 2f 0d 23 70 72 | stream.|. */.#pr|
|00000c80| 61 67 6d 61 20 73 65 67 | 6d 65 6e 74 20 4e 65 6f |agma seg|ment Neo|
|00000c90| 53 74 72 65 61 6d 0d 76 | 6f 69 64 20 43 4e 65 6f |Stream.v|oid CNeo|
|00000ca0| 53 63 72 61 70 53 74 72 | 65 61 6d 3a 3a 77 72 69 |ScrapStr|eam::wri|
|00000cb0| 74 65 42 6c 6f 62 28 4e | 65 6f 42 6c 6f 62 20 61 |teBlob(N|eoBlob a|
|00000cc0| 42 6c 6f 62 2c 20 63 6f | 6e 73 74 20 4e 65 6f 4d |Blob, co|nst NeoM|
|00000cd0| 61 72 6b 20 61 4d 61 72 | 6b 2c 20 63 6f 6e 73 74 |ark aMar|k, const|
|00000ce0| 20 6c 6f 6e 67 20 61 4c | 65 6e 67 74 68 2c 20 63 | long aL|ength, c|
|00000cf0| 6f 6e 73 74 20 4e 65 6f | 54 61 67 20 61 54 61 67 |onst Neo|Tag aTag|
|00000d00| 29 0d 7b 0d 09 69 66 20 | 28 61 42 6c 6f 62 29 20 |).{..if |(aBlob) |
|00000d10| 7b 09 09 09 09 09 09 09 | 09 09 09 2f 2a 20 62 6c |{.......|.../* bl|
|00000d20| 6f 62 20 65 78 69 73 74 | 73 20 2a 2f 0d 09 09 48 |ob exist|s */...H|
|00000d30| 4c 6f 63 6b 48 69 28 28 | 48 61 6e 64 6c 65 29 61 |LockHi((|Handle)a|
|00000d40| 42 6c 6f 62 29 3b 0d 09 | 09 50 75 74 53 63 72 61 |Blob);..|.PutScra|
|00000d50| 70 28 61 4c 65 6e 67 74 | 68 2c 20 61 54 61 67 2c |p(aLengt|h, aTag,|
|00000d60| 20 4e 65 6f 42 6c 6f 62 | 47 65 74 50 74 72 28 61 | NeoBlob|GetPtr(a|
|00000d70| 42 6c 6f 62 29 29 3b 0d | 09 09 48 55 6e 6c 6f 63 |Blob));.|..HUnloc|
|00000d80| 6b 28 28 48 61 6e 64 6c | 65 29 61 42 6c 6f 62 29 |k((Handl|e)aBlob)|
|00000d90| 3b 0d 09 7d 0d 7d 0d 0d | 2f 2a 0d 20 2a 20 57 72 |;..}.}..|/*. * Wr|
|00000da0| 69 74 65 20 74 6f 20 74 | 68 65 20 63 75 72 72 65 |ite to t|he curre|
|00000db0| 6e 74 20 6c 6f 63 61 74 | 69 6f 6e 20 69 6e 20 74 |nt locat|ion in t|
|00000dc0| 68 65 20 66 69 6c 65 20 | 61 20 63 68 75 6e 6b 20 |he file |a chunk |
|00000dd0| 6f 66 20 64 61 74 61 20 | 6f 66 20 6c 65 6e 67 74 |of data |of lengt|
|00000de0| 68 0d 20 2a 20 61 4c 65 | 6e 67 74 68 20 74 61 6b |h. * aLe|ngth tak|
|00000df0| 65 6e 20 66 72 6f 6d 20 | 74 68 65 20 62 75 66 66 |en from |the buff|
|00000e00| 65 72 20 72 65 66 65 72 | 72 65 64 20 74 6f 20 62 |er refer|red to b|
|00000e10| 79 20 61 42 75 66 66 65 | 72 2e 20 54 68 69 73 20 |y aBuffe|r. This |
|00000e20| 6d 65 74 68 6f 64 0d 20 | 2a 20 61 73 73 75 6d 65 |method. |* assume|
|00000e30| 73 20 74 68 61 74 20 74 | 68 65 20 66 69 6c 65 20 |s that t|he file |
|00000e40| 69 73 20 6f 70 65 6e 20 | 61 6e 64 20 70 6f 73 69 |is open |and posi|
|00000e50| 74 69 6f 6e 65 64 20 74 | 6f 20 74 68 65 20 70 72 |tioned t|o the pr|
|00000e60| 6f 70 65 72 20 6c 6f 63 | 61 74 69 6f 6e 0d 20 2a |oper loc|ation. *|
|00000e70| 20 69 6e 20 74 68 65 20 | 66 69 6c 65 2e 0d 20 2a | in the |file.. *|
|00000e80| 2f 0d 23 70 72 61 67 6d | 61 20 73 65 67 6d 65 6e |/.#pragm|a segmen|
|00000e90| 74 20 4e 65 6f 57 72 69 | 74 65 0d 76 6f 69 64 20 |t NeoWri|te.void |
|00000ea0| 43 4e 65 6f 53 63 72 61 | 70 53 74 72 65 61 6d 3a |CNeoScra|pStream:|
|00000eb0| 3a 77 72 69 74 65 43 68 | 75 6e 6b 28 63 6f 6e 73 |:writeCh|unk(cons|
|00000ec0| 74 20 76 6f 69 64 20 2a | 61 42 75 66 66 65 72 2c |t void *|aBuffer,|
|00000ed0| 20 63 6f 6e 73 74 20 6c | 6f 6e 67 20 61 4c 65 6e | const l|ong aLen|
|00000ee0| 67 74 68 2c 20 63 6f 6e | 73 74 20 4e 65 6f 54 61 |gth, con|st NeoTa|
|00000ef0| 67 20 2f 2a 20 61 54 61 | 67 20 2a 2f 29 0d 7b 0d |g /* aTa|g */).{.|
|00000f00| 09 69 66 20 28 66 44 61 | 74 61 29 0d 09 09 53 65 |.if (fDa|ta)...Se|
|00000f10| 74 48 61 6e 64 6c 65 53 | 69 7a 65 28 66 44 61 74 |tHandleS|ize(fDat|
|00000f20| 61 2c 20 66 4f 66 66 73 | 65 74 20 2b 20 61 4c 65 |a, fOffs|et + aLe|
|00000f30| 6e 67 74 68 29 3b 0d 09 | 65 6c 73 65 20 7b 0d 09 |ngth);..|else {..|
|00000f40| 09 4e 65 6f 46 61 69 6c | 4e 69 6c 28 66 44 61 74 |.NeoFail|Nil(fDat|
|00000f50| 61 20 3d 20 4e 65 77 48 | 61 6e 64 6c 65 28 61 4c |a = NewH|andle(aL|
|00000f60| 65 6e 67 74 68 29 29 3b | 0d 09 09 66 4f 66 66 73 |ength));|...fOffs|
|00000f70| 65 74 20 3d 20 30 3b 0d | 09 7d 0d 09 66 4c 65 6e |et = 0;.|.}..fLen|
|00000f80| 67 74 68 20 2b 3d 20 61 | 4c 65 6e 67 74 68 3b 0d |gth += a|Length;.|
|00000f90| 0d 09 4e 65 6f 42 6c 6f | 63 6b 4d 6f 76 65 28 61 |..NeoBlo|ckMove(a|
|00000fa0| 42 75 66 66 65 72 2c 20 | 28 28 2a 28 63 68 61 72 |Buffer, |((*(char|
|00000fb0| 20 2a 2a 29 66 44 61 74 | 61 29 20 2b 20 66 4f 66 | **)fDat|a) + fOf|
|00000fc0| 66 73 65 74 29 2c 20 61 | 4c 65 6e 67 74 68 29 3b |fset), a|Length);|
|00000fd0| 0d 09 66 4f 66 66 73 65 | 74 20 3d 20 66 4c 65 6e |..fOffse|t = fLen|
|00000fe0| 67 74 68 3b 0d 7d 0d 0d | 2f 2a 0d 20 2a 20 54 68 |gth;.}..|/*. * Th|
|00000ff0| 65 20 70 72 6f 63 65 73 | 73 20 6f 66 20 77 72 69 |e proces|s of wri|
|00001000| 74 69 6e 67 20 61 6e 20 | 6f 62 6a 65 63 74 20 74 |ting an |object t|
|00001010| 6f 20 61 20 73 74 72 65 | 61 6d 20 73 6f 6d 65 74 |o a stre|am somet|
|00001020| 69 6d 65 73 20 69 6e 76 | 6f 6c 76 65 73 20 66 69 |imes inv|olves fi|
|00001030| 72 73 74 0d 20 2a 20 63 | 6f 6e 66 69 67 75 72 69 |rst. * c|onfiguri|
|00001040| 6e 67 20 6f 72 20 6f 74 | 68 65 72 77 69 73 65 20 |ng or ot|herwise |
|00001050| 70 72 65 70 61 72 69 6e | 67 20 74 68 65 20 73 74 |preparin|g the st|
|00001060| 72 65 61 6d 2e 20 54 68 | 65 20 77 72 69 74 65 4f |ream. Th|e writeO|
|00001070| 62 6a 65 63 74 20 6d 65 | 74 68 6f 64 0d 20 2a 20 |bject me|thod. * |
|00001080| 6f 76 65 72 72 69 64 64 | 65 6e 20 62 79 20 74 68 |overridd|en by th|
|00001090| 6f 73 65 20 73 74 72 65 | 61 6d 73 20 74 6f 20 70 |ose stre|ams to p|
|000010a0| 65 72 66 6f 72 6d 20 74 | 68 65 73 65 20 70 72 65 |erform t|hese pre|
|000010b0| 61 6d 62 6c 65 20 74 61 | 73 6b 73 2e 0d 20 2a 2f |amble ta|sks.. */|
|000010c0| 0d 23 70 72 61 67 6d 61 | 20 73 65 67 6d 65 6e 74 |.#pragma| segment|
|000010d0| 20 4e 65 6f 53 74 72 65 | 61 6d 0d 76 6f 69 64 20 | NeoStre|am.void |
|000010e0| 43 4e 65 6f 53 63 72 61 | 70 53 74 72 65 61 6d 3a |CNeoScra|pStream:|
|000010f0| 3a 77 72 69 74 65 4f 62 | 6a 65 63 74 28 43 4e 65 |:writeOb|ject(CNe|
|00001100| 6f 50 65 72 73 69 73 74 | 20 2a 61 4f 62 6a 65 63 |oPersist| *aObjec|
|00001110| 74 2c 20 63 6f 6e 73 74 | 20 4e 65 6f 54 61 67 20 |t, const| NeoTag |
|00001120| 61 54 61 67 29 0d 7b 0d | 09 5a 65 72 6f 53 63 72 |aTag).{.|.ZeroScr|
|00001130| 61 70 28 29 3b 09 09 09 | 09 09 09 2f 2f 20 43 6c |ap();...|...// Cl|
|00001140| 65 61 72 20 74 68 65 20 | 70 72 65 76 69 6f 75 73 |ear the |previous|
|00001150| 20 63 6f 6e 74 65 6e 74 | 73 20 6f 66 20 74 68 65 | content|s of the|
|00001160| 20 73 63 72 61 70 0d 09 | 66 4c 65 6e 67 74 68 20 | scrap..|fLength |
|00001170| 3d 20 30 3b 0d 09 66 4f | 66 66 73 65 74 20 3d 20 |= 0;..fO|ffset = |
|00001180| 30 3b 0d 7d 0d 0d 00 00 | 00 00 00 00 00 00 00 00 |0;.}....|........|
|00001190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001200| 00 00 01 00 00 00 02 fe | 00 00 01 fe 00 00 00 7e |........|.......~|
|00001210| 00 00 9f 3b 07 4e 65 6f | 2e 4f 4d 50 02 00 00 00 |...;.Neo|.OMP....|
|00001220| 50 72 6f 6a 42 52 4f 57 | 01 00 00 3c 00 00 00 00 |ProjBROW|...<....|
|00001230| 12 43 4e 65 6f 53 63 72 | 61 70 53 74 72 65 61 6d |.CNeoScr|apStream|
|00001240| 2e 63 70 53 02 00 00 00 | 54 45 58 54 42 52 4f 57 |.cpS....|TEXTBROW|
|00001250| 00 00 54 45 58 54 42 52 | 4f 57 01 00 01 18 00 00 |..TEXTBR|OW......|
|00001260| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001270| 00 00 a8 fa ae 84 00 00 | 11 06 00 00 03 7c 00 00 |........|.....|..|
|00001280| 00 00 16 00 00 00 9f 3b | 10 4e 65 6f 42 65 6e 63 |.......;|.NeoBenc|
|00001290| 68 20 52 65 73 75 6c 74 | 73 6f 02 00 02 00 4e 65 |h Result|so....Ne|
|000012a0| 35 64 4e 65 6f 35 01 00 | 00 3c 00 c0 00 00 00 01 |5dNeo5..|.<......|
|000012b0| 53 fe 00 00 00 00 58 90 | 00 00 60 00 00 00 00 00 |S.....X.|..`.....|
|000012c0| 00 00 00 00 00 00 a8 f9 | c6 7d a8 f9 c6 ed 00 00 |........|.}......|
|000012d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000012e0| 00 00 00 00 a5 15 00 03 | 00 00 00 00 00 00 00 00 |........|........|
|000012f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001300| 00 00 00 78 00 04 00 00 | 00 48 00 48 00 00 00 00 |...x....|.H.H....|
|00001310| 03 09 02 64 ff f8 00 00 | 03 10 02 64 f5 03 05 28 |...d....|...d...(|
|00001320| 03 fc 00 02 fd 00 00 c4 | 00 cb 00 00 00 00 08 44 |........|.......D|
|00001330| 06 c0 00 b4 00 2d 05 a0 | 5e ec 00 26 02 01 01 01 |.....-..|^..&....|
|00001340| 00 01 00 01 27 0f 00 01 | 00 01 00 00 00 00 00 00 |....'...|........|
|00001350| 00 00 00 00 00 00 00 01 | 00 00 00 00 00 00 00 00 |........|........|
|00001360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001370| 00 00 00 00 00 00 00 00 | 00 00 83 04 00 00 00 16 |........|........|
|00001380| 01 00 00 00 00 00 00 00 | 01 00 01 00 00 07 07 43 |........|.......C|
|00001390| 6f 75 72 69 65 72 00 00 | 00 08 00 00 00 00 00 00 |ourier..|........|
|000013a0| 00 00 00 00 00 ea 00 09 | 00 00 00 c8 00 00 00 c8 |........|........|
|000013b0| 0f 63 6c 6f 73 65 5c 43 | 4e 65 6f 53 69 6e 6b 00 |.close\C|NeoSink.|
|000013c0| 00 00 00 c8 00 00 00 c8 | 0f 63 72 65 61 74 65 5c |........|.create\|
|000013d0| 43 4e 65 6f 53 69 6e 6b | 00 00 00 c8 00 00 00 c8 |CNeoSink|........|
|000013e0| 0f 66 6c 75 73 68 5c 43 | 4e 65 6f 53 69 6e 6b 00 |.flush\C|NeoSink.|
|000013f0| 00 00 00 c8 00 00 00 c8 | 11 67 65 74 4e 61 6d 65 |........|.getName|
|00001400| 5c 43 4e 65 6f 53 69 6e | 6b 00 00 00 00 c8 00 00 |\CNeoSin|k.......|
|00001410| 00 c8 0f 69 73 4f 70 65 | 6e 5c 43 4e 65 6f 53 69 |...isOpe|n\CNeoSi|
|00001420| 6e 6b 00 00 00 c8 00 00 | 00 c8 0d 6f 70 65 6e 5c |nk......|...open\|
|00001430| 43 4e 65 6f 53 69 6e 6b | 00 00 00 c8 00 00 00 c8 |CNeoSink|........|
|00001440| 17 72 65 61 6c 6c 79 47 | 65 74 4d 61 72 6b 5c 43 |.reallyG|etMark\C|
|00001450| 4e 65 6f 53 69 6e 6b 00 | 00 00 00 f1 00 00 00 f1 |NeoSink.|........|
|00001460| 11 73 65 74 54 79 70 65 | 5c 43 4e 65 6f 53 69 6e |.setType|\CNeoSin|
|00001470| 6b 00 00 00 00 f1 00 00 | 00 f1 15 77 72 69 74 65 |k.......|...write|
|00001480| 4f 62 6a 65 63 74 5c 43 | 4e 65 6f 53 69 6e 6b 00 |Object\C|NeoSink.|
|00001490| 00 00 00 1e 00 28 00 0a | 01 c2 02 80 00 28 00 0a |.....(..|.....(..|
|000014a0| 01 c2 02 80 00 00 05 af | 00 00 00 00 00 00 00 00 |........|........|
|000014b0| 00 00 00 00 00 48 00 09 | 4d 6f 6e 61 63 6f 00 00 |.....H..|Monaco..|
|000014c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000014d0| 00 00 00 00 00 00 00 00 | 00 03 00 04 00 56 00 0a |........|.....V..|
|000014e0| 01 f0 02 80 00 56 00 0a | 01 f0 02 80 aa 6a 84 d5 |.....V..|.....j..|
|000014f0| 00 00 06 ab 00 00 06 ab | 00 00 05 af 01 00 00 00 |........|........|
|00001500| 01 00 00 00 02 fe 00 00 | 01 fe 00 00 00 7e 01 7a |........|.....~.z|
|00001510| 46 08 2e 46 00 00 00 1c | 00 7e 00 02 4d 50 53 52 |F..F....|.~..MPSR|
|00001520| 00 03 00 1a 46 50 52 46 | 00 00 00 4a 46 50 72 66 |....FPRF|...JFPrf|
|00001530| 00 00 00 56 03 ee ff ff | 00 00 00 00 00 00 00 00 |...V....|........|
|00001540| 03 ef ff ff 00 00 00 a2 | 00 00 00 00 03 f0 ff ff |........|........|
|00001550| 00 00 01 90 00 00 00 00 | 03 ed ff ff 00 00 01 b2 |........|........|
|00001560| 00 00 00 00 05 1a ff ff | 00 00 00 7c 00 00 00 00 |........|...|....|
|00001570| 05 1a ff ff 00 00 00 96 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+